package com.expert.miniapp.dao;

import lombok.Data;
import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 仪器设备实体类
 * 对应数据库表：instrument
 */
@Data
@Entity
@Table(name = "instrument")
public class Instrument {
    
    /**
     * 仪器唯一标识（主键）
     */
    @Id
    @Column(name = "instrument_id", length = 20, nullable = false)
    @JsonProperty("instrumentId")
    private String instrumentId;
    
    /**
     * 仪器名称
     */
    @Column(name = "name", length = 100, nullable = false)
    @JsonProperty("name")
    private String name;
    
    /**
     * 所属机构
     */
    @Column(name = "organization", length = 60)
    @JsonProperty("organization")
    private String organization;
    
    /**
     * 所在城市
     */
    @Column(name = "city", length = 30)
    @JsonProperty("city")
    private String city;
    
    /**
     * 摘要
     */
    @Column(name = "summary", length = 200)
    @JsonProperty("summary")
    private String summary;
    
    /**
     * 技术参数
     */
    @Column(name = "technical_parameters", columnDefinition = "TEXT")
    @JsonProperty("technicalParameters")
    private String technicalParameters;
    
    /**
     * 功能介绍
     */
    @Column(name = "function_introduction", columnDefinition = "TEXT")
    @JsonProperty("functionIntroduction")
    private String functionIntroduction;
    
    /**
     * 使用说明
     */
    @Column(name = "usage_instructions", columnDefinition = "TEXT")
    @JsonProperty("usageInstructions")
    private String usageInstructions;
    
    /**
     * 收费标准
     */
    @Column(name = "fee_standard", columnDefinition = "TEXT")
    @JsonProperty("feeStandard")
    private String feeStandard;
    
    /**
     * 预约说明
     */
    @Column(name = "appointment_instructions", columnDefinition = "TEXT")
    @JsonProperty("appointmentInstructions")
    private String appointmentInstructions;
    
    /**
     * 其他信息
     */
    @Column(name = "other_info", columnDefinition = "TEXT")
    @JsonProperty("otherInfo")
    private String otherInfo;
    
    /**
     * 分类标签
     */
    @Column(name = "categories", length = 50)
    @JsonProperty("categories")
    private String categories;
    
    /**
     * 标签
     */
    @Column(name = "tags", length = 50)
    @JsonProperty("tags")
    private String tags;
    
    /**
     * 显示权重
     */
    @Column(name = "display_weight")
    @JsonProperty("displayWeight")
    private Integer displayWeight;
    
    /**
     * 图片URL
     */
    @Column(name = "image_url", length = 500)
    @JsonProperty("imageUrl")
    private String imageUrl;
}